package com.joolun.system.domain;

import java.util.Date;

import cn.hutool.core.date.DateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.joolun.common.annotation.Excel;
import com.joolun.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 课程课时对象 edu_course_hour
 * 
 * @author joolun
 * @date 2025-02-27
 */
@Data
public class EduCourseHour extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 课时id */
    private Long hourId;

    /** 课时标题 */
    @Excel(name = "课时标题")
    private String hourName;

    /** 章节id */
    @Excel(name = "章节id")
    private Long chapterId;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 课时开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
    @Excel(name = "课时开始时间", width = 30, dateFormat = "yyyy-MM-dd HH-mm-ss")
    private String startTime;

    /** 课时结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
    @Excel(name = "课时结束时间", width = 30, dateFormat = "yyyy-MM-dd HH-mm-ss")
    private String endTime;

    /** 课时类型：1-直播id，2-直播url，3-内部直播间 */
    @Excel(name = "课时类型：1-直播id，2-直播url，3-内部直播间")
    private Long hourType;

    /** 直播间id */
    @Excel(name = "直播间id")
    private String liveBroadcastId;

    /** 直播间链接 */
    @Excel(name = "直播间链接")
    private String liveBroadcastUrl;

    /** 验证是否报名：1-需要，2-不需要 */
    @Excel(name = "验证是否报名：1-需要，2-不需要")
    private Long isSign;

    /** 是否隐藏：1-显示，2-隐藏 */
    @Excel(name = "是否隐藏：1-显示，2-隐藏")
    private Long isHide;

    /** 直播状态：1-随系统设置，2-直播中，3-直播结束，4-观看回放 */
    @Excel(name = "直播状态：1-随系统设置，2-直播中，3-直播结束，4-观看回放")
    private Long liveStatus;

    /** 主体id */
    @Excel(name = "主体id")
    private String corpId;

    public void setHourId(Long hourId) 
    {
        this.hourId = hourId;
    }

    public Long getHourId() 
    {
        return hourId;
    }
    public void setHourName(String hourName) 
    {
        this.hourName = hourName;
    }

    public String getHourName() 
    {
        return hourName;
    }
    public void setChapterId(Long chapterId) 
    {
        this.chapterId = chapterId;
    }

    public Long getChapterId() 
    {
        return chapterId;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }
    public void setStartTime(String startTime)
    {
        this.startTime = startTime;
    }

    public String getStartTime()
    {
        return startTime;
    }
    public void setEndTime(String endTime)
    {
        this.endTime = endTime;
    }

    public String getEndTime()
    {
        return endTime;
    }
    public void setHourType(Long hourType) 
    {
        this.hourType = hourType;
    }

    public Long getHourType() 
    {
        return hourType;
    }
    public void setLiveBroadcastId(String liveBroadcastId) 
    {
        this.liveBroadcastId = liveBroadcastId;
    }

    public String getLiveBroadcastId() 
    {
        return liveBroadcastId;
    }
    public void setLiveBroadcastUrl(String liveBroadcastUrl) 
    {
        this.liveBroadcastUrl = liveBroadcastUrl;
    }

    public String getLiveBroadcastUrl() 
    {
        return liveBroadcastUrl;
    }
    public void setIsSign(Long isSign) 
    {
        this.isSign = isSign;
    }

    public Long getIsSign() 
    {
        return isSign;
    }
    public void setIsHide(Long isHide) 
    {
        this.isHide = isHide;
    }

    public Long getIsHide() 
    {
        return isHide;
    }
    public void setLiveStatus(Long liveStatus) 
    {
        this.liveStatus = liveStatus;
    }

    public Long getLiveStatus() 
    {
        return liveStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("hourId", getHourId())
            .append("hourName", getHourName())
            .append("chapterId", getChapterId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("delFlag", getDelFlag())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("hourType", getHourType())
            .append("liveBroadcastId", getLiveBroadcastId())
            .append("liveBroadcastUrl", getLiveBroadcastUrl())
            .append("isSign", getIsSign())
            .append("isHide", getIsHide())
            .append("liveStatus", getLiveStatus())
            .toString();
    }
}
